Several types of messaging systems exist to allow computer users to participate in text-based communication, including email, Internet Relay Chat (“IRC” or “chat”), instant messaging (“IM”), and bulletin boards. While each of these existing messaging systems is useful in limited contexts and for specific uses, all have problems if an attempt is made to use them as a general-purpose communication mechanism, such as between various user-specified groups of multiple users for conversations that persist over time and regardless of the connectivity status of the computers of the users.
For example, email is useful for a single message that is sent to many other users, and can support with at least limited effectiveness a short interactive conversation between two users. However, each email message is a distinct document, and any response messages are similarly distinct documents. Thus, to view an entire history of communications on a subject, many messages must typically be opened, and the sequence of messages is often difficult to reconstruct. While an email response can include the contents of the previous email, such as when that relationship is explicitly specified by a user (e.g., by using a “Reply” feature), the previous contents are typically displayed in a different manner than those of the response (e.g., indented and with each line prefaced with an indicator such as “>”). Such mechanisms for including prior message contents quickly devolve as multiple responses back and forth each include contents of previous messages, with increasing levels of indentation and line indicators making the contents increasingly unreadable. In addition, email is designed such that the most recent contents are listed first, causing a user to read from the present backwards into the past. Moreover, when more than two users are involved, there is not typically a mechanism to include multiple responses from different users together so that they can viewed in a single window, and each user may receive different messages (since each user sending a message controls the recipients).
The email situation is further complicated when multiple conversations on different topics occur. It is not uncommon for a user's email Inbox to have hundreds or even thousands of messages, with interactions on any one topic sprinkled throughout the messages. This makes finding any one part of a conversation difficult, and makes piecing together the whole conversation very difficult and time consuming. While some mail programs can be used to sort messages by subject or sender, problems still exist, particularly when dealing with large numbers of messages. For example, it is difficult to remember subject headings or email names, and it is time consuming to run sorting algorithms and to search through the sorted material. In addition, messages from a selected user may be part of many distinct conversations, while the use of subjects for sorting requires that each user manually maintains the appropriate subject (e.g., by using the Reply feature and by not altering the default subject). Moreover, even if a group of possibly relevant messages can be identified, the user must then must look at each one of them to locate what is needed, which is difficult and time consuming.
Chat and IM solve some problems introduced by email. For example, the contents of multiple messages may be simultaneously displayed in a manner that is easy to read, thus simplifying the process of viewing a history of a conversation. Unfortunately, the use of chat and IM maintains other problems present with email, and introduces a variety of additional problems. For example, an IM user can typically have only a single on-going conversation with one other person, which greatly limits its usefulness as a general-purpose messaging system. More generally, while email messages can be sent and viewed regardless of the current connectivity status of the current intended recipient or previous sender, a message cannot typically be sent with chat and IM unless both the sender and the recipient are currently connected and participating in the conversation. While this is problematic for any computing device, it causes particular problems when using a device with intermittent connectivity (e.g., portable computing devices, such as cellular telephones, PDAs, WI-FI enabled laptops, etc.).
In addition, chat and IM messages are not typically saved in a persistent memory under control of the user, and previous messages are not typically available to a user when they return after having previously shut down their computing device or after having left the chat or IM messaging service. Thus, when a user rejoins a chat or starts a new IM session, the user has to start over without a context and having missed any intervening messages. Although some chat and IM solutions may provide a “history” or “archiving” functionality that permits the storage of text a user sent and received during all conversations of a session, the functionality is typically difficult to use and provides limited benefits at best. For example, all of the stored text is provided together, giving no differentiation between or context of different discussions with other users. Thus, significant manual effort would typically be required to reconstruct a history of a conversation using such information. In addition, even if a user is able to access a stored archive of a chat, the user cannot participate in the chat while not connected and cannot typically pick up in a past discussion if they later rejoin the chat.
Bulletin boards create yet other problems, and are not typically suitable for arbitrary discussions between user-specified groups of users. Like email, bulletin board messages are typically treated as independent documents, and thus a conversation among participants is difficult to view. A user typically must select and read each message independently of the others, which is both time consuming and causes difficulties in maintaining a context from previous messages. If contents of previous messages are included in a bulletin board message, the same problems arise as are prevalent in email conversations. Furthermore, bulletin boards do not typically provide any means to organize or access data beyond what is presented on the board, such as by sorting or organizing data into folders.
Accordingly, it would beneficial to have a type of messaging that is useful for general-purpose communications by users of various types of client computing devices and that supports a variety of useful features, such as to allow multiple simultaneous conversations with distinct user-specified groups of multiple users that are easily created and used, to maintain communications in a persistent and virtual manner such that users can send communications regardless of their own connectivity status or that of the intended recipients and can receive communications that occurred while the users were not connected, to allow the communications for each conversation to be displayed distinctly and in such a manner that the contents of current and previous communications are easily viewed (e.g., displayed together in a uniform manner and in a user-specified order), to allow the organization and storage of communications in a user-specified manner, and/or to allow the sending and receiving of communications that include various types of information.